Systems and methods for dynamically resolving hardware failures in an information handling system

ABSTRACT

An information handling system may include a processor and a basic input/output system configured to, responsive to an occurrence of an exception error, triage among various hardware components of the information handling system to determine existence of any signatures of potential hardware failures, write a database structure to a non-volatile memory including the signatures of potential hardware failures, upon boot of the basic input/output system, enable one or more control methods for hardware failure mitigations associated with the signatures of potential hardware failures, and perform the mitigations during execution of an operating system of the information handling system.

TECHNICAL FIELD

The present disclosure relates in general to information handlingsystems, and more particularly to methods and systems for dynamicallyresolving hardware failures in an information handling system.

BACKGROUND

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems.

An information handling system may include many hardware devices thatmust function in concert with each other, and must function as expectedin order for the information handling system as a whole to functionappropriately. Hardware failures leading to system inoperability may becaused by hardware itself, device firmware, a management engine, a basicinput/output system (BIOS), drivers, or an operating system. Hardwarefailures are often similar from generation to generation of informationhandling systems.

Sometimes a failure may be resolved with an update to software. However,very often hardware failures may not be as easily resolved, and mayinclude issues which may require a long lead time for repair, as may bein the case of soldered down motherboard devices that may require anexpensive motherboard replacement. Another expensive repair may be thatof a hardware or firmware failure of a device that causes an informationhandling system to “hang” even upon reboot.

Sometimes such failures may have workarounds that return an informationhandling system to operability in the event of a hardware issue.However, such workarounds are often undocumented and often requiremanual application.

SUMMARY

In accordance with the teachings of the present disclosure, thedisadvantages and problems associated with hardware failures may bereduced or eliminated.

In accordance with these and other embodiments of the presentdisclosure, an information handling system may include a processor and abasic input/output system configured to, responsive to an occurrence ofan exception error, triage among various hardware components of theinformation handling system to determine existence of any signatures ofpotential hardware failures, write a database structure to anon-volatile memory including the signatures of potential hardwarefailures, upon boot of the basic input/output system, enable one or morecontrol methods for hardware failure mitigations associated with thesignatures of potential hardware failures, and perform the mitigationsduring execution of an operating system of the information handlingsystem.

In accordance with these and other embodiments of the presentdisclosure, a method may include, in a basic input/output system of aninformation handling system: responsive to an occurrence of an exceptionerror, triaging among various hardware components of the informationhandling system to determine existence of any signatures of potentialhardware failures, writing a database structure to a non-volatile memoryincluding the signatures of potential hardware failures, upon boot ofthe basic input/output system, enabling one or more control methods forhardware failure mitigations associated with the signatures of potentialhardware failures, and performing the mitigations during execution of anoperating system of the information handling system.

In accordance with these and other embodiments of the presentdisclosure, an article of manufacture may include a processor and anon-transitory computer-readable medium and computer-executableinstructions carried on the computer-readable medium, the instructionsreadable by a processor, the instructions, when read and executed, forcausing the processor to, in a basic input/output system of aninformation handling system: responsive to an occurrence of an exceptionerror, triage among various hardware components of the informationhandling system to determine existence of any signatures of potentialhardware failures; write a database structure to a non-volatile memoryincluding the signatures of potential hardware failures; upon boot ofthe basic input/output system, enable one or more control methods forhardware failure mitigations associated with the signatures of potentialhardware failures; and perform the mitigations during execution of anoperating system of the information handling system.

Technical advantages of the present disclosure may be readily apparentto one skilled in the art from the figures, description and claimsincluded herein. The objects and advantages of the embodiments will berealized and achieved at least by the elements, features, andcombinations particularly pointed out in the claims.

It is to be understood that both the foregoing general description andthe following detailed description are examples and explanatory and arenot restrictive of the claims set forth in this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present embodiments and advantagesthereof may be acquired by referring to the following description takenin conjunction with the accompanying drawings, in which like referencenumbers indicate like features, and wherein:

FIG. 1 illustrates a block diagram of an example information handlingsystem, in accordance with embodiments of the present disclosure; and

FIG. 2 illustrates a flowchart of an example method for dynamicallyresolving hardware failures in an information handling system, inaccordance with embodiments of the present disclosure.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood byreference to FIGS. 1 and 2, wherein like numbers are used to indicatelike and corresponding parts. For the purposes of this disclosure, aninformation handling system may include any instrumentality or aggregateof instrumentalities operable to compute, classify, process, transmit,receive, retrieve, originate, switch, store, display, manifest, detect,record, reproduce, handle, or utilize any form of information,intelligence, or data for business, scientific, control, entertainment,or other purposes. For example, an information handling system may be apersonal computer, a personal digital assistant (PDA), a consumerelectronic device, a network storage device, or any other suitabledevice and may vary in size, shape, performance, functionality, andprice. The information handling system may include memory, one or moreprocessing resources such as a central processing unit (“CPU”) orhardware or software control logic. Additional components of theinformation handling system may include one or more storage devices, oneor more communications ports for communicating with external devices aswell as various input/output (“I/O”) devices, such as a keyboard, amouse, and a video display. The information handling system may alsoinclude one or more buses operable to transmit communication between thevarious hardware components.

For the purposes of this disclosure, computer-readable media may includeany instrumentality or aggregation of instrumentalities that may retaindata and/or instructions for a period of time. Computer-readable mediamay include, without limitation, storage media such as a direct accessstorage device (e.g., a hard disk drive or floppy disk), a sequentialaccess storage device (e.g., a tape disk drive), compact disk, CD-ROM,DVD, random access memory (RAM), read-only memory (ROM), electricallyerasable programmable read-only memory (EEPROM), and/or flash memory; aswell as communications media such as wires, optical fibers, microwaves,radio waves, and other electromagnetic and/or optical carriers; and/orany combination of the foregoing.

For the purposes of this disclosure, information handling resources maybroadly refer to any component system, device or apparatus of aninformation handling system, including without limitation processors,service processors, basic input/output systems, buses, memories, I/Odevices and/or interfaces, storage resources, network interfaces,motherboards, and/or any other components and/or elements of aninformation handling system.

FIG. 1 illustrates a block diagram of an example information handlingsystem 102, in accordance with embodiments of the present disclosure. Insome embodiments, information handling system 102 may comprise apersonal computer. In some embodiments, information handling system 102may comprise or be an integral part of a server. In other embodiments,information handling system 102 may comprise a portable informationhandling system (e.g., a laptop, notebook, tablet, handheld, smartphone, personal digital assistant, etc.). As depicted in FIG. 1,information handling system 102 may include a processor 103, a memory104 communicatively coupled to processor 103, a BIOS 105 communicativelycoupled to processor 103, a network interface 108 communicativelycoupled to processor 103, a management controller 112 communicativelycoupled to processor 103, and a non-volatile memory (NVRAM) 122 for BIOS105.

Processor 103 may include any system, device, or apparatus configured tointerpret and/or execute program instructions and/or process data, andmay include, without limitation, a microprocessor, microcontroller,digital signal processor (DSP), application specific integrated circuit(ASIC), or any other digital or analog circuitry configured to interpretand/or execute program instructions and/or process data. In someembodiments, processor 103 may interpret and/or execute programinstructions and/or process data stored in memory 104 and/or anothercomponent of information handling system 102.

Memory 104 may be communicatively coupled to processor 103 and mayinclude any system, device, or apparatus configured to retain programinstructions and/or data for a period of time (e.g., computer-readablemedia). Memory 104 may include RAM, EEPROM, a PCMCIA card, flash memory,magnetic storage, opto-magnetic storage, or any suitable selectionand/or array of volatile or non-volatile memory that retains data afterpower to information handling system 102 is turned off.

As shown in FIG. 1, memory 104 may have stored thereon an operatingsystem 106. Operating system 106 may comprise any program of executableinstructions, or aggregation of programs of executable instructions,configured to manage and/or control the allocation and usage of hardwareresources such as memory, processor time, disk space, and input andoutput devices, and provide an interface between such hardware resourcesand application programs hosted by operating system 106. In addition,operating system 106 may include all or a portion of a network stack fornetwork communication via a network interface (e.g., network interface108 for communication over a data network). Active portions of operatingsystem 106 may be transferred to memory 104 for execution by processor103. Although operating system 106 is shown in FIG. 1 as stored inmemory 104, in some embodiments operating system 106 may be stored instorage media accessible to processor 103, and active portions ofoperating system 106 may be transferred from such storage media tomemory 104 for execution by processor 103.

A BIOS 105 may include any system, device, or apparatus configured toidentify, test, and/or initialize information handling resources ofinformation handling system 102, and/or initialize interoperation ofinformation handling system 102 with other information handling systems.“BIOS” may broadly refer to any system, device, or apparatus configuredto perform such functionality, including without limitation, a UnifiedExtensible Firmware Interface (UEFI). In some embodiments, BIOS 105 maybe implemented as a program of instructions that may be read by andexecuted on processor 103 to carry out the functionality of BIOS 105. Inthese and other embodiments, BIOS 105 may comprise boot firmwareconfigured to be the first code executed by processor 103 wheninformation handling system 102 is booted and/or powered on. As part ofits initialization functionality, code for BIOS 105 may be configured toset components of information handling system 102 into a known state, sothat one or more applications (e.g., an operating system or otherapplication programs) stored on compatible media (e.g., disk drives) maybe executed by processor 103 and given control of information handlingsystem 102.

Network interface 108 may comprise any suitable system, apparatus, ordevice operable to serve as an interface between information handlingsystem 102 and one or more other information handling systems via anin-band management network. Network interface 108 may enable informationhandling system 102 to communicate using any suitable transmissionprotocol and/or standard. In these and other embodiments, networkinterface 108 may comprise a network interface card, or “NIC.” In someembodiments, network interface 108 may comprise a 10 gigabit Ethernetnetwork interface. In these and other embodiments, network interface 108may be enabled as a local area network (LAN)-on-motherboard (LOM) card.

In operation, processor 103, memory 104, BIOS 105, and network interface108 may comprise at least a portion of a host system 98 of informationhandling system 102. Although FIG. 1 depicts host system 98, in someembodiments of the present disclosure, information handling system 102may not include a host system 98.

Management controller 112 may be configured to provide managementfacilities for management of information handling system 102. Suchmanagement may be made by management controller 112 even if informationhandling system 102 is powered off or powered to a standby state.Management controller 112 may include a processor 113 and a managementnetwork interface 118 separate from and physically isolated from datanetwork interface 108. In certain embodiments, management controller 112may include or may be an integral part of a baseboard managementcontroller (BMC) or a remote access controller (e.g., a Dell RemoteAccess Controller or Integrated Dell Remote Access Controller). As shownin FIG. 1, management controller 112 may comprise a processor 113 and anetwork interface 118 communicatively coupled to processor 113.

Processor 113 may include any system, device, or apparatus configured tointerpret and/or execute program instructions and/or process data, andmay include, without limitation, a microprocessor, microcontroller,digital signal processor (DSP), application specific integrated circuit(ASIC), or any other digital or analog circuitry configured to interpretand/or execute program instructions and/or process data. In someembodiments, processor 113 may interpret and/or execute programinstructions and/or process data stored in a memory and/or anothercomponent of information handling system 102 or management controller112. As shown in FIG. 1, processor 113 may be communicatively coupled toprocessor 103. Such coupling may be via a Universal Serial Bus (USB),System Management Bus (SMBus), and/or one or more other communicationschannels.

Network interface 118 may comprise any suitable system, apparatus, ordevice operable to serve as an interface between management controller112 and one or more other information handling systems via anout-of-band management network. Network interface 118 may enablemanagement controller 112 to communicate using any suitable transmissionprotocol and/or standard. In these and other embodiments, networkinterface 118 may comprise a network interface card, or “NIC.” In someembodiments, network interface 118 may comprise a 1 gigabit Ethernetnetwork interface.

NVRAM 122 may include any system, device, or apparatus configured toretain program instructions and/or data for a period of time, and mayinclude non-volatile memory that retains data after power to informationhandling system 102 is turned off. For example, in some embodiments,NVRAM 122 may comprise a flash storage device. In some embodiments,NVRAM 122 may store thereon one or more firmware images, includingfirmware for BIOS 105, configuration code, or other executable code.

In addition to processor 103, memory 104, network interface 108,management controller 112, and NVRAM 122, information handling system102 may include one or more other information handling resources.

In operation, during execution of operating system 106, an exceptionerror or stop error may occur, which is often termed the “Blue Screen ofDeath.” When such an exception error occurs, a variable (e.g., avariable “BugCheckCode”) may be written to NVRAM 122. Responsive to theexception error, which may be indicated by the variable written to NVRAM122, BIOS 105 may, on a boot session subsequent to that of the exceptionerror, initiate a hardware triage among various devices withininformation handling system 102 to determine the existence of anyhardware failures that may be mitigated on subsequent boots, and write adatabase structure to NVRAM 122 that includes signatures of hardwarefailures.

Upon boot of BIOS 105, BIOS 105 may search for failure signatures andenable mitigations for such failure signatures. For mitigations that mayoccur within operating system 106 or require Advanced Configuration andPower Interface (ACPI) support, such mitigations may be processed byACPI polling events. Mitigations for hang events of operating system 106may be processed by periodic System Management Interrupt (SMI) events.Signature information may be updated with device state conditions duringpolling events.

FIG. 2 illustrates a flowchart of an example method 200 for dynamicallyresolving hardware failures in information handling system 102, inaccordance with embodiments of the present disclosure. According tocertain embodiments, method 200 may begin at step 202. As noted above,teachings of the present disclosure may be implemented in a variety ofconfigurations of information handling system 102. As such, thepreferred initialization point for method 200 and the order of the stepscomprising method 200 may depend on the implementation chosen.

At step 202, an exception error may occur and a variable (e.g., avariable “BugCheckCode”) may be written to NVRAM 122 indicating theexception error occurred.

At step 204, responsive to the exception error, which may be indicatedby the variable written to NVRAM 122, BIOS 105 may, during the same bootsession, initiate a hardware triage among various devices withininformation handling system 102 to determine the existence of anysignatures of potential hardware failures that may be mitigated onsubsequent boots, and write a database structure to NVRAM 122 thatincludes signatures of potential hardware failures.

For example, in some embodiments, such hardware triage may includeanalyzing Peripheral Component Interconnect Express (PCIe) buses ofinformation handling system 102 for failures that can be mitigated onsubsequent boots.

As another example, in these and other embodiments, for Serial AdvancedTechnology Attachment (SATA), Advanced Host Controller Interface (AHCI),Redundant Array of Inexpensive Disks (RAID), class code devices, orsimilar devices, BIOS 105 may triage such devices by analyzing eachconnected port for a busy status, waiting up to a period of time (e.g.,eight seconds) for such busy status to clear, and if a port fails toclear, write an NVRAM variable (e.g., called“PeriodicSmiMitigation_SATA”) with a Global Unique Identifier (GUID)(e.g., PERIOD_SMI_MITIGATION_GUID), and include an address (e.g., a PCIeaddress) of the SATA/AHCl/RAID controller, the port of the busy device,and a mitigation method number (e.g., a mitigation method numberassociated with power cycling a hard disk drive power cycle).

As a further example, in these and other embodiments, for UniversalSerial Bus (USB) class code devices, BIOS 105 may triage such devices bydetermining if the USB controller ownership bit is still set to BIOSownership. If so, BIOS 105 may write to NVRAM 122 a variable (e.g.,called “PeriodicSmiMitigation_USB” with a GUID (e.g.,PERIOD_SMI_MITIGATION_GUID), and include an address (e.g., a PCIeaddress) of the USB controller and a mitigation method number (e.g., inthis case, a mitigation method number associated with clearing the USBcontroller BIOS ownership).

As yet another example, in these and other embodiments, also for USBclass code devices, BIOS 105 may triage such devices by looking at eachport status in the controller, looking for overcurrent conditions. Ifovercurrent conditions exist, BIOS 105 may write to NVRAM 122 a variable(e.g., called “PeriodicSmiMitigation_USB”) with a GUID (e.g.,PERIOD_SMI_MITIGATION_GUID) and include an address (e.g., a PCIeaddress) of the USB controller and a mitigation method number (e.g., inthis case, a mitigation method number associated with clearingovercurrent status and resetting the USB port).

As yet another example, in these and other embodiments, on PCIe bridgeclass code devices, BIOS 105 may triage such devices by determining if adownstream bridge bus number is configured, but no device is present onsuch bus. If so, BIOS 105 may write to NVRAM 122 a variable (e.g.,called “ACPI_Poll_Mitigation_PCIE”) with a GUID (e.g.,ACPI_POLL_MITIGATION_GUID) and include an address (e.g., PCIe address)of the PCIe bridge, and a mitigation method number (e.g., in this case,sending a hot reset to the PCIe bridge, restoring PCIe settings saved atthe ACPI _WAK method, with ACPI sending a Notify (0×80) to forceoperating system 106 to re-enumerate the PCIe bridge and device).

As yet another example, in these and other embodiments, for real-timeclock (RTC) register validation, BIOS 105 may triage such devices byconfirming the RTC register indicates that the RTC time of day clock isenabled. If so, BIOS 105 may write to NVRAM 122 a variable (e.g., called“ACPI_Poll_Mitigation_RTC”) with a GUID (e.g.,ACPI_POLL_MITIGATION_GUID), and a mitigation method number (e.g., inthis case, writing an appropriate value to an RTC register).

As yet another example, in these and other embodiments, for a periodictimer stall of a programmable interrupt controller, BIOS 105 may analyzeall processor cores for an unmasked timer and confirm if a system timeris in a periodic mode, and determine if the timer current count is zerofor a predefined period of time (e.g., 500 microseconds). If an errorcondition is indicated, BIOS 105 may write to NVRAM 122 a variable(e.g., called “ACPI_Poll_Mitigation_X2APIC”) with a GUID (e.g.,ACPI_POLL_MITIGATION_GUID), and a mitigation method number (e.g., inthis case rewriting an INITIAL_COUNT value if non-zero, or writing theINITIAL_COUNT value to an appropriate value).

As yet another example, in these and other embodiments, for a one-shottimer stall of a programmable interrupt controller, BIOS 105 may analyzeall processor cores for an unmasked timer and confirm if a system timeris in a one-shot mode. If the one-shot flag remains clear, BIOS 105 maysave the INITIAL count register to compare on the next poll and set aflag to indicate that this was the first one-shot poll. If the one-shotflag is set, BIOS 105 may clear the one-shot flag and if theINITIAL_COUNT register matches the saved value (e.g., the same event isstill stalled), BIOS 105 may write a variable (e.g., called“ACPI_Poll_Mitigation_X2APIC”) to NVRAM 122 with a GUID (e.g.,ACPI_POLL_MITIGATION_GUID), and a mitigation method number (e.g., inthis case rewriting the INITIAL_COUNT value if non-zero, or writing theINITIAL_COUNT value to an appropriate value).

At step 206, upon boot of BIOS 105, BIOS 105 may search for failuresignatures and enable mitigations for such failure signatures. Forexample, BIOS 105 may read NVRAM 122 to look for any variables with theGUID ACPI_POLL_MITIGATION_GUID and load the contents of any suchvariables into an ACPI-accessible data structure. If any variable ofNVRAM 122 has the GUID ACPI_POLL_MITIGATION_GUID, an ACPI flag may beset to enable ACPI polling mitigation, as described in more detailbelow. As another example, BIOS 105 may read NVRAM 122 to look for anyvariables with the GUID PERIODIC_SMI_MITIGATION_GUID and load thecontents of any such variables into an SMI-accessible data structure. Ifany variable of NVRAM 122 has the GUID PERIODIC_SMI_MITIGATION_GUID,BIOS 105 may enable a periodic SMI handler for a periodic SMI mitigationfeature.

At step 208, based on the data structures created at step 206, BIOS 105may create one or more control methods for mitigating hardware failures.For example, for ACPI-accessible data structures, BIOS 105 may, for allpermanent devices and all devices built-in to supported docks for whichthe device can fail in a detectable manner or has failed on otherinformation handling systems:

(a) Create an ACPI control method under the device definition, called“POLL”. This control method may return TRUE if the failure signature isdetected.

(b) Create an ACPI control method called “RSET” which attempts to resetthe device, and returns TRUE if the failure was resolved or FALSEotherwise. Results may be written to a memory log.

(c) Create an ACPI control method called “PWER” which attempts tobriefly remove power from the device, and returns TRUE if this resolvedthe failure. Results may be written to a memory log.

(d) Create an ACPI control method called “CSTM” which attempts toresolve the failure in a custom manner, such as calling a software SMIor performing a complex sequence. If video was non-responsive, forexample, an SMI handler could simulate a key sequence (e.g.,Shift-Control-Windows-B) that causes operating system 106 to reload thevideo driver. Results may be written to a memory log.

BIOS 105 may also create a “FREQ” variable to indicate a default pollingfrequency and initialize to a predetermined period of time (e.g., 30seconds).

BIOS 105 may further create an ACPI control method called “PALL” thatmay call all “POLL” routines. If a “POLL” routine returns TRUE for adevice, the “PALL” method may do one of the following:

-   -   call the “RSET” method to perform a non-power removal reset of a        device;    -   call the “PWR” method to perform a power cycle reset of the        device; and    -   call the “CSTM” to perform customized mitigation steps.

BIOS 105 may further create a hook or method that may occur at a regularpre-defined frequency (e.g., once per second). For example, BIOS 105 mayinitialize a count to “FREQ,” decrement the count once per method ofexecution, and when the count reaches zero, call the “PALL” method.

At step 210, operating system 106 may execute and in concert with BIOS105 may perform hardware failure mitigation. For example, an ACPI pollmitigation handler may read a failure address, port, and mitigation froman ACPI polling data structure created at boot. Such parameters may bepassed as parameters to an ACPI control method associated with the classtype found in the data structure. The ACPI control method may execute acontrol method to determine if the signature for the selected mitigationis present. If the signature is present, the control method for suchmitigation may be executed.

As another example, a periodic SMI poll mitigation handler may read afailure address, port, and mitigation from the periodic SMI datastructure created at boot. Such parameters may be passed as parametersto an SMI handler associated with the class type found in the datastructure. The SMI handler may determine if the signature for theselected mitigation is present. If the signature is present, the codefor such mitigation may be executed.

After completion of step 210, method 200 may end.

Although FIG. 2 discloses a particular number of steps to be taken withrespect to method 200, it may be executed with greater or fewer stepsthan those depicted in FIG. 2. In addition, although FIG. 2 discloses acertain order of steps to be taken with respect to method 200, the stepscomprising method 200 may be completed in any suitable order.

Method 200 may be implemented using information handling system 102,components thereof or any other system operable to implement method 200.In certain embodiments, method 200 may be implemented partially or fullyin software and/or firmware embodied in computer-readable media.

The methods and systems disclosed herein may proactively resolvepotential and low-frequency hardware problems, including impossible toprevent silicon failures. The methods and systems disclosed herein mayalso log failures to an NVRAM (which may further be uploaded to amanufacturer of the information handling system, such that anappropriate permanent mitigation or remedy may quickly be initiated).The methods and systems disclosed herein may further poll forpreviously-encountered hardware failures at regular intervals and pollinfrequently if an issue has yet to occur during a boot session in orderto minimize any performance impact, but increase poll frequency if afailure is confirmed. The systems and methods disclosed herein mayadditionally create common ACPI infrastructure for all hardwareworkarounds and may support hardware failure resolution by device reset,device power cycle, or complex sequences including software SMIs.

The systems and methods disclosed herein may also provide for a libraryof failure signature detection and mitigation plans present in BIOS,wherein failure detection code is inaccessible until a failure signaturehas been detected at least once during an exception event. A write ofexception information to NVRAM as a result of an exception event may beintercepted to test the entire library of failure signatures, and writean NVRAM record of all failure signatures found and which predefinedmitigation(s) may resolve the issue. Based on NVRAM variables, failuredetection mitigation methods may be enabled at boot time. Mitigationoccurring in an operating system or that requires ACPI support may beprocessed by an ACPI polling event. Mitigation for operating system hangevents may be processed by a periodic SMI event.

As used herein, when two or more elements are referred to as “coupled”to one another, such term indicates that such two or more elements arein electronic communication or mechanical communication, as applicable,whether connected indirectly or directly, with or without interveningelements.

This disclosure encompasses all changes, substitutions, variations,alterations, and modifications to the example embodiments herein that aperson having ordinary skill in the art would comprehend. Similarly,where appropriate, the appended claims encompass all changes,substitutions, variations, alterations, and modifications to the exampleembodiments herein that a person having ordinary skill in the art wouldcomprehend. Moreover, reference in the appended claims to an apparatusor system or a component of an apparatus or system being adapted to,arranged to, capable of, configured to, enabled to, operable to, oroperative to perform a particular function encompasses that apparatus,system, or component, whether or not it or that particular function isactivated, turned on, or unlocked, as long as that apparatus, system, orcomponent is so adapted, arranged, capable, configured, enabled,operable, or operative. Accordingly, modifications, additions, oromissions may be made to the systems, apparatuses, and methods describedherein without departing from the scope of the disclosure. For example,the components of the systems and apparatuses may be integrated orseparated. Moreover, the operations of the systems and apparatusesdisclosed herein may be performed by more, fewer, or other componentsand the methods described may include more, fewer, or other steps.Additionally, steps may be performed in any suitable order. As used inthis document, “each” refers to each member of a set or each member of asubset of a set.

Although exemplary embodiments are illustrated in the figures anddescribed below, the principles of the present disclosure may beimplemented using any number of techniques, whether currently known ornot. The present disclosure should in no way be limited to the exemplaryimplementations and techniques illustrated in the drawings and describedabove.

Unless otherwise specifically noted, articles depicted in the drawingsare not necessarily drawn to scale.

All examples and conditional language recited herein are intended forpedagogical objects to aid the reader in understanding the disclosureand the concepts contributed by the inventor to furthering the art, andare construed as being without limitation to such specifically recitedexamples and conditions. Although embodiments of the present disclosurehave been described in detail, it should be understood that variouschanges, substitutions, and alterations could be made hereto withoutdeparting from the spirit and scope of the disclosure.

Although specific advantages have been enumerated above, variousembodiments may include some, none, or all of the enumerated advantages.Additionally, other technical advantages may become readily apparent toone of ordinary skill in the art after review of the foregoing figuresand description.

To aid the Patent Office and any readers of any patent issued on thisapplication in interpreting the claims appended hereto, applicants wishto note that they do not intend any of the appended claims or claimelements to invoke 35 U.S.C. § 112(f) unless the words “means for” or“step for” are explicitly used in the particular claim.

What is claimed is:
 1. An information handling system comprising: aprocessor; and a basic input/output system configured to: responsive toan occurrence of an exception error, triage among various hardwarecomponents of the information handling system to determine existence ofany signatures of potential hardware failures; write a databasestructure to a non-volatile memory including the signatures of potentialhardware failures; upon boot of the basic input/output system, enableone or more control methods for hardware failure mitigations associatedwith the signatures of potential hardware failures; and perform themitigations during execution of an operating system of the informationhandling system.
 2. The information handling system of claim 1, thebasic input/output system further configured to create the one or morecontrol methods based on the database structure.
 3. The informationhandling system of claim 1, the basic input/output system furtherconfigured to determine the exception error based on a variableindicating the exception error.
 4. The information handling system ofclaim 1, wherein the one or more control methods comprise AdvancedConfiguration and Power Interface polling events.
 5. The informationhandling system of claim 1, wherein the one or more control methodscomprise periodic System Management Interface events.
 6. The informationhandling system of claim 1, wherein the basic input/output systemcomprises a library of failure signature detection mechanisms and plansfor hardware mitigations.
 7. The information handling system of claim 1,wherein the basic input/output system is further configured to disablehardware failure mitigations for which associated signatures ofpotential hardware failures are absent.
 8. A method comprising, in abasic input/output system of an information handling system: responsiveto an occurrence of an exception error, triaging among various hardwarecomponents of the information handling system to determine existence ofany signatures of potential hardware failures; writing a databasestructure to a non-volatile memory including the signatures of potentialhardware failures; upon boot of the basic input/output system, enablingone or more control methods for hardware failure mitigations associatedwith the signatures of potential hardware failures; and performing themitigations during execution of an operating system of the informationhandling system.
 9. The method of claim 8, further comprising creatingthe one or more control methods based on the database structure.
 10. Themethod of claim 8, further comprising determining the exception errorbased on a variable indicating the exception error.
 11. The method ofclaim 8, wherein the one or more control methods comprise AdvancedConfiguration and Power Interface polling events.
 12. The method ofclaim 8, wherein the one or more control methods comprise periodicSystem Management Interface events.
 13. The method of claim 8, whereinthe basic input/output system comprises a library of failure signaturedetection mechanisms and plans for hardware mitigations.
 14. The methodof claim 8, further comprising disabling hardware failure mitigationsfor which associated signatures of potential hardware failures areabsent.
 15. An article of manufacture comprising: a processor; and anon-transitory computer-readable medium; and computer-executableinstructions carried on the computer-readable medium, the instructionsreadable by a processor, the instructions, when read and executed, forcausing the processor to, in a basic input/output system of aninformation handling system: responsive to an occurrence of an exceptionerror, triage among various hardware components of the informationhandling system to determine existence of any signatures of potentialhardware failures; write a database structure to a non-volatile memoryincluding the signatures of potential hardware failures; upon boot ofthe basic input/output system, enable one or more control methods forhardware failure mitigations associated with the signatures of potentialhardware failures; and perform the mitigations during execution of anoperating system of the information handling system.
 16. The article ofclaim 15, the instructions for further causing the processor to createthe one or more control methods based on the database structure.
 17. Thearticle of claim 15, the instructions for further causing the processorto determine the exception error based on a variable indicating theexception error.
 18. The article of claim 15, wherein the one or morecontrol methods comprise Advanced Configuration and Power Interfacepolling events.
 19. The article of claim 15, wherein the one or morecontrol methods comprise periodic System Management Interface events.20. The article of claim 15, wherein the basic input/output systemcomprises a library of failure signature detection mechanisms and plansfor hardware mitigations.
 21. The article of claim 15, the instructionsfor further causing the processor to disable hardware failuremitigations for which associated signatures of potential hardwarefailures are absent.